Although the Internet has existed for almost twenty-five years, its use has accelerated over the past few years at a previously unanticipated rate. The Internet has become a new communication environment that can be compared to a virtual telephone system with its own, sophisticated, computerized worldwide directory. The Internet has become increasingly popular for business applications such as its use as a mechanism for distributing software and other information. Many millions of users of the Internet have learned firsthand just how frustrating navigating the Internet can be. In order to increase the productivity of users in an Internet environment, by reducing the time wasted waiting for downloading information, a need exists to substantially speed up delivery of information.
The software and other information sought to be downloaded over the Internet frequently exists in multiple files. A selected file may have other files which are either companion files, optional files, documentation, or other related files. In order to select the files which are appropriate to a given user's needs, the user has to initiate several separate download sessions. In each of these sessions, the user must specify which objects/files must be obtained and where the object is to be stored on the client machine. This results in a redundancy of work for the user which interrupts work flow and creates a multiplicity of files on the client's computer with no documentation relative to the contents of the individual files.
One example of these types of files are found in the application development environment where reusable software components may be combined to create new application programs. A front runner has emerged in the reusable software component arena developed by the Sun Microsystems Corporation known as a "bean". A Java bean or bean is a reusable software component that can be visually manipulated by a builder's tool to create new application programs. Beans have been created as simple push buttons, text field list boxes, scrollbars, or dialogs. More complex beans have been created as calendars, spreadsheets or calculators. The idea is that the standard interfaces of the beans allow for interchangeable, reusable components that can be created and sold by vendors in a manner similar to parts in a car, which can be replaced by components made by many different competing manufacturers. These reusable software components have found a thriving distribution channel in the form of the Internet. Since the reusable software components frequently exist in multiple separate files, users must initiate several download sessions in order to store the files on a client machine.
One prior art solution attempted to alleviate the problems of downloading multiple files by increasing the speed of the hardware. This effort has been mainly concentrated on increasing the computer's modem speed. Since a 14,400 baud modem will download a file seven times faster then a 2400 baud modem, a file that takes one hour to download at 2400 baud would only take 8.6 minutes at 14,400 baud. Consequently, modem speeds have undergone seemingly endless increases from 2400 baud to 14.4K, 28.8K, 33.6K to today's highest-speed modems, which are capable of transmitting at or below a 56K baud rate. While the increases in modem speed eases the downloading of files in certain instances, what has resulted is a plethora of computers containing modems of differing transfer rates and capabilities.
Still other prior art techniques have sought to replace the analog lines over which information is typically transmitted with specialized transmission media such as ISDN (Integrated Services Digital Network) lines. A typical ISDN line has an uncompressed speed of 128K baud. However, ISDN lines are frequently more expensive than analog lines and are not available in every area.
Consequently, it would be desirable to provide a mechanism for downloading multiple related files from a server to a client, by dynamically combining the files on the server, and passing them in a single download event.